"""
施工日志
"""
import logging

import pytest
from playwright.sync_api import Page, expect, Playwright
from Config.config import *
from Config.URL import *
import allure, os

from Config.AutoFlowEngine import autoflow
from Config.Base import Base
from Config.Tool import tool


@pytest.mark.业务系统
@pytest.mark.施工管理
#@pytest.mark.parametrize('case', case_data)
def test_case(playwright : Playwright) -> None:
    SetupTeardown = Base(playwright)
    SetupTeardown.goto(url)
    SetupTeardown.login(username_admin, password_admin)
    context = SetupTeardown.context
    page = SetupTeardown.page
    allure.step("登录")
    page.goto(url)
    page.get_by_placeholder("请输入用户名").fill("shigong1")
    page.get_by_placeholder("请输入密码").fill(password_admin)
    page.get_by_role("button", name="登 录").click()
    
    allure.step("跳转施工日志URL")
    page.goto(url+url_shigongrizhi)

    time =tool.nowtime("ymd")
    SetupTeardown.select_ssbd(bd_zhihuigu)
    # page.get_by_placeholder("请选择所属标段").click()
    # page.get_by_text(bd_zhihuigu).click()

    #有作业面时
    if page.get_by_role("tree").get_by_text("AutoTest作业面").is_visible():
        page.get_by_role("tree").get_by_text("AutoTest作业面").click()
        page.get_by_role("button", name=" 新建").first.click()
        # 该日期已经存在施工日志--    不输入设备  人员（会自动带入）
        try:
            expect(page.get_by_role("paragraph")).to_contain_text("该日期已经存在施工日志")
            time = tool.nowtime("ymd",tomorrow=1)
        except:
            pass
        page.get_by_placeholder("请选择日志日期").clear()
        page.get_by_placeholder("请选择日志日期").fill(time)
        page.get_by_placeholder("请选择日志日期").press("Enter")
        page.get_by_placeholder("请输入天气情况").first.fill("晴朗")
        page.get_by_placeholder("请输入最高气温℃").first.fill("30")
        page.get_by_placeholder("请输入最低气温℃").first.fill("15")
        page.get_by_placeholder("请输入白班风力").fill("3")
        page.get_by_placeholder("请输入天气情况").nth(1).fill("阴雨")
        page.get_by_placeholder("请输入最高气温℃").nth(1).fill("15")
        page.get_by_placeholder("请输入最低气温℃").nth(1).fill("-5")
        page.get_by_placeholder("请输入晚班风力").fill("5")
        page.get_by_role("tab", name="施工情况记录").click()
        page.get_by_placeholder("请输入施工部位").fill("施工部位1")
        page.get_by_placeholder("请输入施工内容").fill("施工内容1")
        page.get_by_placeholder("请输入施工中存在问题").fill("施工中存在问题1")
        with page.expect_file_chooser() as fc_info:
            page.locator(".el-upload > .el-icon-plus").click()
        file_chooser = fc_info.value
        file_chooser.set_files(test_datas_dir + "\图片.jpg")
        # page.get_by_role("button", name="增加设备").click()
        # page.get_by_placeholder("请输入设备信息").fill("设备1")
        # page.get_by_placeholder("请输入使用数量").fill("10")
        # page.get_by_placeholder("请输入单位").fill("台")
        # page.get_by_role("button", name="增加人员").click()
        # page.get_by_placeholder("请输入/选择类型").click()
        # page.get_by_text("管理人员").click()
        # page.get_by_placeholder("请输入工种").fill("管理员")
        # page.get_by_placeholder("请输入数量").fill("10")
        page.get_by_role("tab", name="技术质量安全工作记录").click()
        page.get_by_placeholder("请输入设计变更/或技术核定").fill("设计变更1")
        page.get_by_placeholder("请输入施工技术交底").fill("施工技术交底1")
        page.get_by_placeholder("请输入隐蔽工程检查验收情况").fill("隐蔽工程检查验收1")
        page.get_by_placeholder("请输入混凝土、砂浆试块制作与送检").fill("混凝土1")
        page.get_by_placeholder("请输入材料设备进场送检或检查情况").fill("材料设备1")
        page.get_by_placeholder("请输入质量活动情况（包括质量评定情况）").fill("质量活动1")
        page.get_by_placeholder("请输入安全活动情况（包括安全隐患排查与治理情况）").fill("安全活动1")
        page.get_by_role("tab", name="其他情况").click()
        page.get_by_role("button", name="发起流程").click()
        expect(page.get_by_role("alert")).to_contain_text("操作成功")
    # 无作业面时
    else:
        page.locator(".el-tooltip").first.click()
        page.get_by_role("button", name=" 新建").nth(1).click()
        page.get_by_placeholder("请输入工区编码").fill("AutoTest工区1")
        page.get_by_label("基本信息").get_by_placeholder("请输入名称").fill("AutoTest工区1")
        page.get_by_placeholder("请选择类型").click()
        page.locator("li").filter(has_text="工区").click()
        page.get_by_label("基本信息").get_by_role("spinbutton").fill("1")
        page.get_by_role("button", name="确 定").click()
        expect(page.get_by_role("alert")).to_contain_text("新建成功！")
        page.wait_for_timeout(2000)

        page.get_by_role("button", name=" 新建").nth(1).click()
        page.get_by_placeholder("请输入工区编码").fill("AutoTest作业面")
        page.get_by_label("基本信息").get_by_placeholder("请输入名称").fill("AutoTest作业面")
        page.get_by_placeholder("请选择类型").click()
        page.locator("li").filter(has_text="作业面").click()
        # page.wait_for_timeout(500)
        page.get_by_placeholder("请选择所属工区").click()
        page.locator("li").filter(has_text="AutoTest工区1").locator("span").click()
        page.get_by_role("button", name="确 定").click()
        expect(page.get_by_role("alert")).to_contain_text("新建成功！")
        page.get_by_text("返回").nth(1).click()

        page.get_by_role("tree").get_by_text("AutoTest作业面").click()
        page.get_by_role("button", name=" 新建").first.click()
        page.get_by_placeholder("请选择日志日期").clear()
        page.get_by_placeholder("请选择日志日期").fill(time)
        page.get_by_placeholder("请选择日志日期").press("Enter")
        page.get_by_placeholder("请输入天气情况").first.fill("晴朗")
        page.get_by_placeholder("请输入最高气温℃").first.fill("30")
        page.get_by_placeholder("请输入最低气温℃").first.fill("15")
        page.get_by_placeholder("请输入白班风力").fill("3")
        page.get_by_placeholder("请输入天气情况").nth(1).fill("阴雨")
        page.get_by_placeholder("请输入最高气温℃").nth(1).fill("15")
        page.get_by_placeholder("请输入最低气温℃").nth(1).fill("-5")
        page.get_by_placeholder("请输入晚班风力").fill("5")
        page.get_by_role("tab", name="施工情况记录").click()
        page.get_by_placeholder("请输入施工部位").fill("施工部位1")
        page.get_by_placeholder("请输入施工内容").fill("施工内容1")
        page.get_by_placeholder("请输入施工中存在问题").fill("施工中存在问题1")
        with page.expect_file_chooser() as fc_info:
            page.locator(".el-upload > .el-icon-plus").click()
        file_chooser = fc_info.value
        file_chooser.set_files(test_datas_dir + "\图片.jpg")
        page.get_by_role("button", name="增加设备").click()
        page.get_by_placeholder("请输入设备信息").fill("设备1")
        page.get_by_placeholder("请输入使用数量").fill("10")
        page.get_by_placeholder("请输入单位").fill("台")
        page.get_by_role("button", name="增加人员").click()
        page.get_by_placeholder("请输入/选择类型").click()
        page.get_by_text("管理人员").click()
        page.get_by_placeholder("请输入工种").fill("管理员")
        page.get_by_placeholder("请输入数量").fill("10")
        page.get_by_role("tab", name="技术质量安全工作记录").click()
        page.get_by_placeholder("请输入设计变更/或技术核定").fill("设计变更1")
        page.get_by_placeholder("请输入施工技术交底").fill("施工技术交底1")
        page.get_by_placeholder("请输入隐蔽工程检查验收情况").fill("隐蔽工程检查验收1")
        page.get_by_placeholder("请输入混凝土、砂浆试块制作与送检").fill("混凝土1")
        page.get_by_placeholder("请输入材料设备进场送检或检查情况").fill("材料设备1")
        page.get_by_placeholder("请输入质量活动情况（包括质量评定情况）").fill("质量活动1")
        page.get_by_placeholder("请输入安全活动情况（包括安全隐患排查与治理情况）").fill("安全活动1")
        page.get_by_role("tab", name="其他情况").click()
        tool.starflow(page)





    autoflow(SetupTeardown,time)
    
    # allure.step("监理单位监理员/监理工程师核查")
    # page.get_by_role("button", name="陈凯 ").click()
    # page.get_by_text("退出系统").click()
    # page.get_by_role("button", name="确定").click()
    # page.get_by_placeholder("请输入用户名").fill("jianli1")
    # page.get_by_placeholder("请输入密码").fill(password_admin)
    # page.get_by_role("button", name="登 录").click()
    # 
    # page.locator("#tags-view-container").get_by_text("项目首页").click()
    # page.get_by_role("row", name="1 【施工日志】").locator("span").nth(1).click()
    # page.get_by_role("button", name="通 过").click()
    # expect(page.locator("body")).to_contain_text("请求成功")
    #
    # allure.step("施工单位施工员签字")
    # page.get_by_role("button", name="谭监 ").click()
    # page.get_by_text("退出系统").click()
    # page.get_by_role("button", name="确定").click()
    # page.get_by_placeholder("请输入用户名").fill("shigong1")
    # page.get_by_placeholder("请输入密码").fill(password_admin)
    # page.get_by_role("button", name="登 录").click()
    # 
    # page.locator("#tags-view-container").get_by_text("项目首页").click()
    # page.get_by_role("row", name="1 【施工日志】").locator("span").nth(1).click()
    # page.get_by_placeholder("请输入签署密码").fill(password_flow)
    # page.get_by_placeholder("请选择签章").click()
    # page.get_by_text("施工单位项目1部-企业公章").click()
    # page.get_by_role("button", name="通 过").click()
    # expect(page.locator("body")).to_contain_text("请求成功")
    #
    # allure.step("监理单位监理员/监理工程师签字")
    # page.get_by_role("button", name="陈凯 ").click()
    # page.get_by_text("退出系统").click()
    # page.get_by_role("button", name="确定").click()
    # page.get_by_placeholder("请输入用户名").fill("jianli1")
    # page.get_by_placeholder("请输入密码").fill(password_admin)
    # page.get_by_role("button", name="登 录").click()
    # 
    # page.locator("#tags-view-container").get_by_text("项目首页").click()
    # page.get_by_role("row", name="1 【施工日志】").locator("span").nth(1).click()
    # page.get_by_placeholder("请输入签署密码").fill(password_flow)
    # page.get_by_placeholder("请选择签章").click()
    # page.get_by_text("监理单位项目1部-企业公章").click()
    # page.get_by_role("button", name="通 过").click()
    # expect(page.locator("body")).to_contain_text("请求成功")

    SetupTeardown.close()


